查看原文
其他

正则篇(五):用正则进行文本解析

可爱的冬梅 职业译员玩转翻译技术
2024-09-09

文本解析也是我们拿到原文之后遇到的比较头疼的问题。

正则表达式不仅可以应用于文件准备,还可以在文档导入至CAT工具的时候,帮我们解析原文本。

  1. 只导入原文中需要翻译的内容

  2. 排除原文中不需要翻译的内容

案例一

这份文档原文是*.txt格式。通过下方的文档你也能看出,需要翻译的其实只有引号内的内容

ID123:file.menu="Open file in new window",
ID124:edit.menu="Insert symbol...",
ID125:edit.menu.formatting="Apply formatting",

如果全都导入到CAT工具中,我们看看效果~

我们发现,如果不对文本进行解析,那导入之后就会有一些问题:

  • 很明显,工作量增加了。比如第一句,我实际上只有Open file in new window需要翻译,但是凭空多了前面很多字符;

  • 质量也有可能出现问题。甭说别的,复制粘贴也容易出错啊!少一个冒号、多一个空格都是会影响程序后期的测试上线。

    要是碰上个不懂的译员,好嘛连代码也一并给翻译了,那可就坏事儿了~后期光调整代码就挺费时间的~~

为什么会这样呢?

任何一款CAT工具,在进行文本解析的时候,都是基于默认的文件后缀名进行文本解析的。

不同的文件后缀名有不同的默认过滤器。

如果你理解不了过滤器,我举一个例子。

我们知道,*.docx的word文档,底层其实是由很多代码组成的,但是如果你用office或者wps打开,只能看到这些文字,看不到这些代码,原因就是工具帮你过滤/解析掉了~

在CAT工具里,这些默认的工具就是各种过滤器

比如:

  • 我们最常见的*.docx文档,导入时候默认用的是Microsoft Word过滤器

  • *.xlsx文档,导入时默认用的是Microsoft Excel过滤器

  • *.txt文档,导入时默认用的是纯文本过滤器

  • *.xml文档,导入时默认用的是xml过滤器

当然,还有各种各样类型的文档,默认情况下都是用默认的过滤器~

至于每个过滤器在各个翻译工具中可以怎么使用,可以找到对应的帮助文档去查一下,在这里我先不详细展开哈哈哈哈哈~

怎么解决呢?

通过正则表达式文本进行文本解析,把要翻译的引号内的内容解析出来,让译员只翻译该翻的就好了~

  • memoQ中用的是正则表达式文本过滤器

  • trados中可以用txt过滤器,再用内嵌内容处理器定义开头结尾的正则

  • 其他的CAT工具也是类似的(但是前提是能用正则进行文本解析才行~)

在这里我们用memoQ来演示操作:

1. 分析原文,定义正则

分类:ID123 : file.menu =" Open file in new window ",

其中,

  • ID123 是上下文;

  • file.menu是注释;

  • Open file in new window是需要翻译的内容;

写正则:(ID\d+) : (.+)? =" (.+)? ",

其中,

  • 第一个括号内ID\d+是上下文;

  • 第二个括号内.+是注释;

  • 第三个括号内.+是需要翻译的内容;

2. 测试过滤器

我们先按照上文的正则内容,设置过滤器。

设置完成后一定要预览一下效果~

3. 导入至CAT工具中进行翻译

过滤器没有问题之后,我们可以用这个过滤器将文档导入~

操作:选择性导入 > 选择文档 > 更改过滤器和配置 > 正则表达式文本过滤器 > 选择过滤器 > 确定

解析过后我们再来看一下效果~

同时还可以看到上下文和注释

放一整个操作视频~

其他案例

我们再来看上篇内容中给大家准备的这个案例。

案例二

原文来自通信领域,原文是*.txt格式,只需要翻译引号内的内容。

button.add: "Add",
button.confirm: "Ok",
button.cancel: "Cancel",
button.create.new: "Create new",
button.edit: "Edit",
button.save: "Save",
modal.bulkActionWarning.title: "Warning",

这次我们换一个更简单的方法来设置正则~

  • 导入前正则:"

  • 导入后正则:"

  • 需要导入的内容规则:.+

过滤器设置如下:

我们对比一下:

操作视频:

案例三

原文是*.txt格式,只需要翻译特殊符号后面(如##)的内容。

##Text to translate
$$ID 1
&&Number
##More text to translate
$$ID 2

我们用案例二提到的正则文本过滤器导入这个文档试试~

案例四

原文是*.txt格式,只需要翻译等号后面的内容。

[0x0409]
TITLE=Choose Setup Language
DESCRIPTION=Select the language for this installation from the choices below.
OK=OK
Cancel=Cancel
1100=Setup Initialization Error
1101=InstallShield Wizard
1102=Checking Operating System Version
1103=Checking Windows(R) Installer Version
1104=Configuring Windows Installer
1105=Setup has completed configuring the Windows Installer on your system. The system needs to be restarted in order to continue with the installation. Please click Restart to reboot the system.

我们还是用正则文本过滤器导入这个文档试试~

结语

正则可以帮助我们解析很多无法搞定的特殊文本,比如不规则的*.mdwordPO文档等等。

下次再有复杂搞不定的文本,可以尝试这个方法啦~


好啦这期正则篇先到这里,下期我们分享用正则定义标签。

你还想学什么,欢迎来问~


往期精选

正则篇(四):源文件准备

正则篇(三):用正则在CAT中查找和替换

正则篇(二):如何写一个正则表达式

正则篇(一):认识正则表达式


继续滑动看下一个
职业译员玩转翻译技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存